package com.ourteam.system.service;

/**
 * Template Name : 服务对象接口
 * Template Version : 1
 * Template Last Modfiy Date : Mon Nov 06 10:52:53 CST 2017
 * Auto Generate Date : 2018-07-20 12:04:35
  * Warning ! This file will be overwrite when regenerate !
  *
 */
public interface ISysUserService {
    /**
    * 查询系统用户
    
    * @param com.ourteam.system.dao.SysUserDAOQueryBean
    
         * @throws Exception
         */
    com.ourteam.system.domain.SystemUser[] getSysUsers(
        final com.ourteam.system.dao.SysUserDAOQueryBean aQueryBean)
        throws Exception;

    /**
    * 查询系统用户数量
    
    * @param com.ourteam.system.dao.SysUserDAOQueryBean
    
         * @throws Exception
         */
    int getSysUserCount(
        final com.ourteam.system.dao.SysUserDAOQueryBean aQueryBean)
        throws Exception;

    /**
    * 创建系统用户
    
    * @param com.ourteam.system.domain.SystemUser
    
         * @throws Exception
         */
    void createSysUser(final com.ourteam.system.domain.SystemUser systemUser)
        throws Exception;

    /**
    * 修改系统用户
    
    * @param com.ourteam.system.domain.SystemUser
    
         * @throws Exception
         */
    void modifySysUser(final com.ourteam.system.domain.SystemUser systemUser)
        throws Exception;

    /**
    * 变更用户密码
    
    * @param com.ourteam.system.domain.SystemUserPassword
    
         * @throws Exception
         */
    void changeUserPassword(
        final com.ourteam.system.domain.SystemUserPassword aSystemUserPassword)
        throws Exception;

    /**
    * 根据帐号取得用户信息
    
    * @param String
    
         * @throws Exception
         */
    com.ourteam.system.domain.SystemUser getSysUserByAccount(
        final String aAccount) throws Exception;

    /**
    * 根据ID取得系统用户信息
    
    * @param long
    
         * @throws Exception
         */
    com.ourteam.system.domain.SystemUser getSysUserById(
        final long aSystemUserId) throws Exception;

    /**
    * 取得用户密码信息
    
    * @param String
    
         * @throws Exception
         */
    com.ourteam.system.domain.SystemUserPassword getSysUserPassword(
        final String aAccount) throws Exception;

    /**
    * 设置系统用户权限
    
    * @param long
    
    * @param com.ourteam.system.domain.SystemUserRoleRelate
    
         * @throws Exception
         */
    void setSysUserAuthorities(final long aSysUserId,
        final com.ourteam.system.domain.SystemUserRoleRelate[] aSystemUserAuthorities)
        throws Exception;

    /**
    * 取得用户权限设置
    
    * @param long
    
         * @throws Exception
         */
    com.ourteam.system.domain.SystemUserRoleRelate[] getSysUserAuthorities(
        final long aSysUserId) throws Exception;

    /**
    * 删除系统用户
    
    * @param long
    
    * @param long
    
         * @throws Exception
         */
    void deleteSysUsers(final long[] sysUserIds, final long operatorId)
        throws Exception;

    /**
    * 根据ID数组取得系统用户
    
    * @param long
    
         * @throws Exception
         */
    com.ourteam.system.domain.SystemUser[] getSysUsersByIds(
        final long[] sysUserId) throws Exception;

    /**
    * 重置用户密码
    
    * @param long
    
    * @param String
    
         * @throws Exception
         */
    void resetSysUserPassword(final long sysUserId, final String password)
        throws Exception;

    /**
    * 增加系统用户登录日志
    
    * @param com.ourteam.system.domain.SysUserLoginLogBean
    
         * @throws Exception
         */
    void addSysUserLoginLog(
        final com.ourteam.system.domain.SysUserLoginLogBean sysUserLoginLogBean)
        throws Exception;

    /**
    * 跟新系统用户登录日志
    
    * @param com.ourteam.system.domain.SysUserLoginLogBean
    
         * @throws Exception
         */
    void modifySysUserLoginLog(
        final com.ourteam.system.domain.SysUserLoginLogBean sysUserLoginLogBean)
        throws Exception;

    /**
    * 根据会话ID取得登录日志
    
    * @param long
    
    * @param String
    
         * @throws Exception
         */
    com.ourteam.system.domain.SysUserLoginLogBean getSysUserLoginLogBySessionId(
        final long userId, final String sessionId) throws Exception;

    /**
    * 查询系统用户登录日志
    
    * @param com.ourteam.system.dao.SysUserLoginLogDAOQueryBean
    
         * @throws Exception
         */
    com.ourteam.system.domain.SysUserLoginLogBean[] querySysUserLoginLog(
        final com.ourteam.system.dao.SysUserLoginLogDAOQueryBean queryBean)
        throws Exception;

    /**
    * 查询系统用户登录日志数量
    
    * @param com.ourteam.system.dao.SysUserLoginLogDAOQueryBean
    
         * @throws Exception
         */
    int querySysUserLoginLogCount(
        final com.ourteam.system.dao.SysUserLoginLogDAOQueryBean queryBean)
        throws Exception;

    /**
    *
    
    * @param long
    
    * @param String
    
    * @param String
    
         * @throws Exception
         */
    void setUserSetting(final long userId, final String itemName,
        final String value) throws Exception;

    /**
    *
    
    * @param long
    
    * @param String
    
         * @throws Exception
         */
    String getUserSetting(final long userId, final String itemName)
        throws Exception;

    /**
    *
    
    * @param com.ourteam.system.domain.SysUserPhotoBean
    
         * @throws Exception
         */
    void setUserPhoto(
        final com.ourteam.system.domain.SysUserPhotoBean userPhoto)
        throws Exception;

    /**
    *
    
    * @param long
    
         * @throws Exception
         */
    com.ourteam.system.domain.SysUserPhotoBean getUserPhoto(final long userId)
        throws Exception;
}
